js:
/** 2023 11 29
 * 记录集 以行为记录，存放在文本中。记录名和记录内容用英文‘，’隔开
 */


function 记录集去重(jlj) {
    var jj = {}
    var qch = []
    for (let i = 0; i < jlj.length; i++) {
        let s = jlj[i].split(',')
        if (s[1] != '' && s[1] != undefined) {
            jj[s[1]] = s[0]
        } else {
            if (s[0] != '' && s[0] != undefined) {
                jj[s[0]] = '数据错误'
            }
        }
    }
    let n = Object.keys(jj)
    n.forEach((item) => {
        
        let str = jj[item] + ',' + item
        qch.push(str)
    })
    return qch
}

function 添加记录到文件(文件名,字符串){
    var 记录集=[]
    if(fileExist(文件名)){
        var 内容=fetch(文件名)
        记录集=内容.split('\n')
        记录集.push(字符串)
    }else{
        记录集.push(字符串)
    }
writeFile(文件名,记录集.join('\n'))
}

function 删除记录从文件_用数组(文件名,字符串){
    var 内容=fetch(文件名)
    var 记录集=内容.split('\n')
    var s=0
    for(let i=0;i<记录集.length;i++){
        if(记录集[i].indexOf(字符串)!=-1){
            s=i
            break;
        }
    }
    记录集.splice(s,1)
    writeFile(文件名,记录集.join('\n'))
}
function 修改记录从文件_用数组(文件名,字符串){
    var 内容=fetch(文件名)
    var 记录集=内容.split('\n')
    var s=0
    for(let i=0;i<记录集.length;i++){
        if(记录集[i].indexOf(字符串)!=-1){
            s=i
            break;
        }
    }
    记录集[i]=字符串
    writeFile(文件名,记录集.join('\n'))
}

function 移动记录到文件(从文件名,到文件名,字符串){
    添加记录到文件(到文件名,字符串)
    删除记录从文件_用数组(从文件名,字符串)
}

function 删除特征记录从文件(从文件名,字符串){
    var th = fetch(从文件名)
        var tjlj = th.split('\n')
        var tsave = []
        for (let i = 0; i < tjlj.length; i++) {
            if (tjlj[i].indexOf(字符串) == -1) {
                tsave.push(tjlj[i])
            }
        }
        writeFile(从文件名, tsave.join('\n'))
        var path=file.slice(0,file.lastIndexOf('/')+1)
        log('save path '+path)
        if(fileExist(path+'已删除特征.txt')){
            var scth=fetch(path+'已删除特征.txt')
            var scs=scth.split('\n')
            scs.push(字符串)
        }else{
            var scs=[]
            scs.push(字符串)
        }
        writeFile(path+'已删除特征.txt', scs.join('\n'))
}

function 显示记录集(jlj, str) {
    for (let i = 0; i < jlj.length; i++) {
        if (jlj[i].indexOf(str) != -1 || str == '' || str == undefined) {
            let s = jlj[i].split(',')
            let 常按扩展 = {
                "longClick": [{
                    title: "收藏",
                    js: `putMyVar("todo", "收藏");putMyVar("myid", "${i}");refreshPage(false);`
                },{
                    title: "删除",
                    js: `putMyVar("todo", '删除');putMyVar('myid', '${i}');refreshPage(false);`
                }]
            }
            dd(d, 't1', s[0], s[1], '', s[1] , 常按扩展)
        }
    }
}

function 长按记录操作(file,jlj,todo,myid){
    log('进入长按记录操作')
    if(todo=='' | todo==undefined){return jlj}
    var path = file.slice(0, file.lastIndexOf('/') + 1)
    
    switch (todo){
        case '收藏':
        移动记录到文件(file,path+'收藏.txt',jlj[parseInt(myid)])
        break;
        case '修改':
        break;

        case '删除':
        移动记录到文件(file,path+'已删除.txt',jlj[parseInt(myid)])
        break;
    }
    jlj.splice(parseInt(myid),1)

return jlj
}